#Boa:Dialog:Dialog1

import wx
import wx.grid
import utiles
import consultasBD
import Vista

GRIS = ( 220, 220, 220, 255)
NEGRO = ( 0, 0, 0, 255)
VERDENEGRO = ( 47, 79, 79, 255)
BLANCO = (255, 255, 255, 255)

def create(parent):
    return Dialog1(parent)

[wxID_DIALOG1, wxID_DIALOG1BUTTON1, wxID_DIALOG1BUTTON2, wxID_DIALOG1BUTTON3, 
 wxID_DIALOG1BUTTON4, wxID_DIALOG1CHECKBOX1, wxID_DIALOG1CHECKBOX2, 
 wxID_DIALOG1CHECKBOX3, wxID_DIALOG1CHECKBOX4, wxID_DIALOG1CHECKBOX5, 
 wxID_DIALOG1COMBOBOX1, wxID_DIALOG1COMBOBOX2, wxID_DIALOG1DATEPICKERCTRL1, 
 wxID_DIALOG1GRID1, wxID_DIALOG1STATICTEXT1, wxID_DIALOG1STATICTEXT10, 
 wxID_DIALOG1STATICTEXT2, wxID_DIALOG1STATICTEXT3, wxID_DIALOG1STATICTEXT4, 
 wxID_DIALOG1STATICTEXT5, wxID_DIALOG1STATICTEXT6, wxID_DIALOG1STATICTEXT7, 
 wxID_DIALOG1STATICTEXT8, wxID_DIALOG1STATICTEXT9, wxID_DIALOG1TEXTCTRL1, 
 wxID_DIALOG1TEXTCTRL2, wxID_DIALOG1TEXTCTRL3, 
] = [wx.NewId() for _init_ctrls in range(27)]

class Dialog1(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_DIALOG1, name='', parent=prnt,
              pos=wx.Point(18, 6), size=wx.Size(927, 587),
              style=wx.DEFAULT_DIALOG_STYLE, title='Listado de Transferencias')
        self.SetClientSize(wx.Size(919, 560))

        self.staticText1 = wx.StaticText(id=wxID_DIALOG1STATICTEXT1,
              label='Fecha', name='staticText1', parent=self, pos=wx.Point(8,
              8), size=wx.Size(29, 13), style=0)

        self.staticText2 = wx.StaticText(id=wxID_DIALOG1STATICTEXT2, label='',
              name='staticText2', parent=self, pos=wx.Point(176, 8),
              size=wx.Size(0, 16), style=0)
        self.staticText2.SetFont(wx.Font(10, wx.SWISS, wx.NORMAL, wx.BOLD,
              False, 'Tahoma'))

        self.datePickerCtrl1 = wx.DatePickerCtrl(id=wxID_DIALOG1DATEPICKERCTRL1,
              name='datePickerCtrl1', parent=self, pos=wx.Point(40, 8),
              size=wx.Size(88, 21), style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY)
        self.datePickerCtrl1.Enable(True)
        self.datePickerCtrl1.Bind(wx.EVT_DATE_CHANGED, self.OnCambiaFecha,
              id=wxID_DIALOG1DATEPICKERCTRL1)

        self.checkBox1 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX1,
              label='Ignorar fecha', name='checkBox1', parent=self,
              pos=wx.Point(8, 32), size=wx.Size(120, 13), style=0)
        self.checkBox1.SetValue(False)
        self.checkBox1.Bind(wx.EVT_CHECKBOX, self.OnClickCheckBox,
              id=wxID_DIALOG1CHECKBOX1)

        self.checkBox2 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX2,
              label='incluir Recepcionados', name='checkBox2', parent=self,
              pos=wx.Point(8, 48), size=wx.Size(144, 13), style=0)
        self.checkBox2.SetValue(True)

        self.checkBox3 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX3,
              label='incluir Pendientes', name='checkBox3', parent=self,
              pos=wx.Point(8, 64), size=wx.Size(128, 13), style=0)
        self.checkBox3.SetValue(True)

        self.staticText3 = wx.StaticText(id=wxID_DIALOG1STATICTEXT3,
              label='Origen', name='staticText3', parent=self, pos=wx.Point(152,
              8), size=wx.Size(32, 13), style=0)

        self.comboBox1 = wx.ComboBox(choices=[], id=wxID_DIALOG1COMBOBOX1,
              name='comboBox1', parent=self, pos=wx.Point(192, 8),
              size=wx.Size(136, 21), style=0, value='')
        self.comboBox1.SetLabel('')
        self.comboBox1.Bind(wx.EVT_COMBOBOX, self.OnComboOrigen,
              id=wxID_DIALOG1COMBOBOX1)

        self.staticText4 = wx.StaticText(id=wxID_DIALOG1STATICTEXT4,
              label='Destino', name='staticText4', parent=self,
              pos=wx.Point(336, 8), size=wx.Size(36, 13), style=0)

        self.comboBox2 = wx.ComboBox(choices=[], id=wxID_DIALOG1COMBOBOX2,
              name='comboBox2', parent=self, pos=wx.Point(384, 8),
              size=wx.Size(136, 21), style=0, value='')
        self.comboBox2.SetLabel('')
        self.comboBox2.Bind(wx.EVT_COMBOBOX, self.OnComboDestino,
              id=wxID_DIALOG1COMBOBOX2)

        self.textCtrl1 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL1, name='textCtrl1',
              parent=self, pos=wx.Point(240, 40), size=wx.Size(48, 21), style=0,
              value='')

        self.textCtrl2 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL2, name='textCtrl2',
              parent=self, pos=wx.Point(336, 40), size=wx.Size(56, 21), style=0,
              value='')

        self.textCtrl3 = wx.TextCtrl(id=wxID_DIALOG1TEXTCTRL3, name='textCtrl3',
              parent=self, pos=wx.Point(464, 40), size=wx.Size(56, 21), style=0,
              value='')

        self.staticText6 = wx.StaticText(id=wxID_DIALOG1STATICTEXT6,
              label='P.T.C.', name='staticText6', parent=self, pos=wx.Point(296,
              40), size=wx.Size(31, 13), style=0)

        self.button1 = wx.Button(id=wxID_DIALOG1BUTTON1, label='Buscar',
              name='button1', parent=self, pos=wx.Point(552, 8),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnBuscar, id=wxID_DIALOG1BUTTON1)

        self.button4 = wx.Button(id=wxID_DIALOG1BUTTON4, label='Imprimir',
              name='button4', parent=self, pos=wx.Point(632, 8),
              size=wx.Size(75, 23), style=0)
        self.button4.Enable(False)
        self.button4.Bind(wx.EVT_BUTTON, self.OnImprimir,
              id=wxID_DIALOG1BUTTON4)

        self.button3 = wx.Button(id=wxID_DIALOG1BUTTON3, label='Limpiar',
              name='button3', parent=self, pos=wx.Point(752, 8),
              size=wx.Size(75, 23), style=0)
        self.button3.Bind(wx.EVT_BUTTON, self.OnBotonLimpiar,
              id=wxID_DIALOG1BUTTON3)

        self.button2 = wx.Button(id=wxID_DIALOG1BUTTON2, label='Salir',
              name='button2', parent=self, pos=wx.Point(832, 8),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_DIALOG1BUTTON2)

        self.staticText5 = wx.StaticText(id=wxID_DIALOG1STATICTEXT5,
              label='ID Transferencia', name='staticText5', parent=self,
              pos=wx.Point(152, 40), size=wx.Size(80, 13), style=0)

        self.grid1 = wx.grid.Grid(id=wxID_DIALOG1GRID1, name='grid1',
              parent=self, pos=wx.Point(8, 88), size=wx.Size(904, 464),
              style=0)
        self.grid1.EnableEditing(False)

        self.staticText7 = wx.StaticText(id=wxID_DIALOG1STATICTEXT7,
              label='Cod Sussan', name='staticText7', parent=self,
              pos=wx.Point(400, 40), size=wx.Size(56, 13), style=0)

        self.checkBox4 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX4,
              label='Ordenar por PTC', name='checkBox4', parent=self,
              pos=wx.Point(296, 64), size=wx.Size(104, 13), style=0)
        self.checkBox4.SetValue(False)
        self.checkBox4.Bind(wx.EVT_CHECKBOX, self.OnOrdenarPTC,
              id=wxID_DIALOG1CHECKBOX4)

        self.checkBox5 = wx.CheckBox(id=wxID_DIALOG1CHECKBOX5,
              label='Ordenar por CodSussan', name='checkBox5', parent=self,
              pos=wx.Point(400, 64), size=wx.Size(144, 13), style=0)
        self.checkBox5.SetValue(False)
        self.checkBox5.Bind(wx.EVT_CHECKBOX, self.OnOrdenarCodSussan,
              id=wxID_DIALOG1CHECKBOX5)

        self.staticText8 = wx.StaticText(id=wxID_DIALOG1STATICTEXT8,
              label='ESTADO:', name='staticText8', parent=self,
              pos=wx.Point(552, 40), size=wx.Size(47, 13), style=0)
        self.staticText8.SetFont(wx.Font(8, wx.SWISS, wx.NORMAL, wx.BOLD, False,
              'Tahoma'))

        self.staticText9 = wx.StaticText(id=wxID_DIALOG1STATICTEXT9,
              label='R - recepcionado', name='staticText9', parent=self,
              pos=wx.Point(608, 40), size=wx.Size(81, 13), style=0)

        self.staticText10 = wx.StaticText(id=wxID_DIALOG1STATICTEXT10,
              label='P - pendiente', name='staticText10', parent=self,
              pos=wx.Point(608, 56), size=wx.Size(64, 13), style=0)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.origen = -1
        self.destino = -1
        self.coloreado = 0
        self.miFecha = ""
        self.seguridad = [False,""]
        self.cargarSucursal()
        self.OnCambiaFecha(None)
        self.crearGrilla()

    def cargarSucursal(self):
        sucursal = utiles.getSucursalActiva()
        SQL = "SELECT nombre FROM sucursales WHERE codsucursal='%s'" % (sucursal)
        resultado = consultasBD.ordenCrudaDict(SQL)
        #self.comboBox2.SetLabel(resultado[0]['nombre'])
        SQL = "SELECT nombre FROM sucursales"
        resultado = consultasBD.ordenCrudaDict(SQL)
        for i,item in enumerate(resultado):
            self.comboBox1.Append(item["nombre"])
            self.comboBox2.Append(item["nombre"])

    def autoAjustarGrillas(self):
        for col in xrange(self.grid1.GetNumberCols()):
            self.grid1.AutoSizeColumn(col,True)

    def crearGrilla(self):
        #ID,Orden,Origen,Destino,Fecha,PTC,CodSussan,Descripcion,Talle,Color,Estado,EnviadoPor
        #0  1     2      3       4     5   6         7           8     9     10     11
        columnas = ['ID','_','Origen','Destino','Fecha','PTC','Cod\nSussan',\
                    'Descripcion','Talle','Color','Estado','Enviado\npor']
        self.grid1.CreateGrid(1,len(columnas))
        for i, col in enumerate(columnas): 
            self.grid1.SetColLabelValue(i, col)
        self.grid1.SetSelectionMode(wx.grid.Grid.wxGridSelectRows)
        self.grid1.EnableEditing(False)
        self.autoAjustarGrillas()

    def OnClickCheckBox(self, event):
        if self.checkBox1.GetValue():
            self.datePickerCtrl1.Enable(False)
        else:
            self.datePickerCtrl1.Enable(True)

    def OnSalir(self, event):
        self.Close()

    def OnComboOrigen(self, event):
        nombreSucursal = self.comboBox1.GetLabel()
        sql = "SELECT codsucursal FROM sucursales WHERE nombre='"+nombreSucursal+"'"
        codigoSucursal = consultasBD.ordenCruda(sql)[0][0]
        self.button1.SetFocus()
        self.origen = codigoSucursal

    def OnComboDestino(self, event):
        nombreSucursal = self.comboBox2.GetLabel()
        sql = "SELECT codsucursal FROM sucursales WHERE nombre='"+nombreSucursal+"'"
        codigoSucursal = consultasBD.ordenCruda(sql)[0][0]
        self.button1.SetFocus()
        self.destino = codigoSucursal

    def OnCambiaFecha(self, event):
        fecha = str(self.datePickerCtrl1.GetValue()).split()[0]
        fecha = fecha[3:5]+"-"+fecha[0:2]+"-20"+fecha[-2:]
        self.miFecha = utiles.invertirFecha(fecha)

    def buscarDatosProducto(self,ptc,codsussan):
        sql = "SELECT descri FROM productos WHERE codsussan='"+codsussan+"'"
        dato = consultasBD.ordenCrudaDict(sql)
        if dato==() or dato==None or len(dato)!=1:
            descripcion = ""
        else:
            descripcion = dato[0]["descri"][:20]
        r1 = "SELECT ptc.talle,ptc.color,c.nombre "
        r2 = "FROM producto_talle_color ptc, colores c "
        r3 = "WHERE ptc.id='"+ptc+"' AND ptc.color=c.idcolor "
        sql = r1+r2+r3
        dato = consultasBD.ordenCrudaDict(sql)
        if dato==() or dato==None or len(dato)!=1:
            talle = ""
            color = ""
        else:
            talle = dato[0]["talle"]
            color = dato[0]["nombre"]+"/"+str(dato[0]["color"])
        return descripcion,talle,color

    def llenarGrilla(self,transferencias):
        renglon = 0
        for item in transferencias:
            idtransferencia = str(item['idtransferencia'])
            idsucorigen = str(item['idsucorigen'])
            idsucorigen = (self.comboBox1.GetItems()[int(idsucorigen)-1])[:15]
            idsucdestino = str(item['idsucdestino'])
            idsucdestino = (self.comboBox2.GetItems()[int(idsucdestino)-1])[:15]
            fecha = str(item['fecha'])[:10]
            fecha = utiles.invertirFecha2(fecha)
            ptc = str(item['ptc'])
            codsussan = str(item['codsussan'])
            #descripcion,talle,color = self.buscarDatosProducto(ptc,codsussan)
            descripcion = str(item['descri'])
            talle = str(item['talle'])
            color = str(item['nombre'])+" / "+str(item['idcolor'])
            estado = str(item['estado'])
            if estado == '1':
                estado = "R"
            else:
                estado = "P"
            try:
                auditoria,orden = str(item["auditoria"]).split(":")
            except:
                auditoria = str(item["auditoria"])
                orden = ""
            if self.seguridad[0]:
                self.seguridad[1] = str(item["seguridad"])
            #ID,Orden,Origen,Destino,Fecha,PTC,CodSussan,Descripcion,Talle,Color,Estado,EnviadoPor
            #0  1     2      3       4     5   6         7           8     9     10     11

            self.grid1.SetCellValue(renglon, 0,idtransferencia)
            self.grid1.SetCellValue(renglon, 1,orden)
            self.grid1.SetCellValue(renglon, 2,idsucorigen)
            self.grid1.SetCellValue(renglon, 3,idsucdestino)
            self.grid1.SetCellValue(renglon, 4,fecha)
            self.grid1.SetCellValue(renglon, 5,ptc)
            self.grid1.SetCellValue(renglon, 6,codsussan)
            self.grid1.SetCellValue(renglon, 7,descripcion)
            self.grid1.SetCellValue(renglon, 8,talle)
            self.grid1.SetCellValue(renglon, 9,color)
            self.grid1.SetCellValue(renglon, 10,estado)
            self.grid1.SetCellValue(renglon, 11,auditoria)
            
            self.grid1.SetCellAlignment(renglon, 1, wx.ALIGN_RIGHT, wx.ALIGN_CENTRE)
            self.grid1.SetCellAlignment(renglon, 4, wx.ALIGN_CENTRE, wx.ALIGN_CENTRE)

            self.grid1.AppendRows(1)
            renglon = renglon + 1

        self.autoAjustarGrillas()
        self.grid1.Refresh()
        self.button4.Enable(True)

    def OnBuscar(self, event):
        if not self.checkBox2.GetValue() and \
           not self.checkBox3.GetValue():
               texto = "Debe indicar si quiere ver los Recepcionados\n"
               texto+= "los Pendientes de Recepcion o ambos."
               utiles.mensaje(None,texto)
               self.checkBox2.SetFocus()
               return
        opcion1 = ""
        if self.checkBox2.GetValue():
            opcion1 = " t.estado='1' "
        if self.checkBox3.GetValue():
            if opcion1 == "":
                opcion1 = " t.estado='0' "
            else:
                opcion1 = ""
        opcion2 = ""
        if opcion1 == "":
            opcion2 = " 1 "
        if self.checkBox1.GetValue():
           if self.comboBox1.GetSelection()==-1 and \
               self.comboBox2.GetSelection()==-1 and \
               self.textCtrl1.GetLabel()=="" and \
               self.textCtrl2.GetLabel()=="" and \
               self.textCtrl3.GetLabel()=="":
                texto = "Debe indicar algun criterio de busqueda:\n"
                texto+= "Origen, Destino, ID, PTC o Cod Sussan"
                utiles.mensaje(None,texto)
                self.comboBox1.SetFocus()
                return
        else:
            r1 = " t.fecha BETWEEN '"+self.miFecha+" 00:00:00' "
            r2 = " AND '"+self.miFecha+" 23:59:59' "
            if opcion1!="":opcion1+=" AND "
            opcion2 = r1+r2
        opcion3 = ""
        if self.comboBox1.GetSelection()!=-1:
            sucOrigen = self.comboBox1.GetSelection()+1
            opcion3 = " AND t.idsucorigen='"+str(sucOrigen)+"' "
        opcion4 = ""
        if self.comboBox2.GetSelection()!=-1:
            sucDestino = self.comboBox2.GetSelection()+1
            opcion4 = " AND t.idsucdestino='"+str(sucDestino)+"' "
        if self.origen!=-1 and self.origen!=-1:
            if self.origen == self.destino:
                utiles.mensaje(None,"Las sucursales Origen y Destino\ndeben ser diferentes")
                return
        opcion5=""
        self.seguridad = [False,""]
        if self.textCtrl1.GetLabel()!="":
            idtransferencia = self.textCtrl1.GetLabel()
            opcion5 = " AND t.idtransferencia='"+idtransferencia+"' "
            self.seguridad = [True,""]
        opcion6=""
        if self.textCtrl2.GetLabel()!="":
            ptc = self.textCtrl2.GetLabel()
            opcion6 = " AND t.ptc='"+ptc+"' "
        opcion7=""
        if self.textCtrl3.GetLabel()!="":
            codsussan = self.textCtrl3.GetLabel()
            opcion7 = " AND t.codsussan='"+codsussan+"' "

        self.button1.SetLabel("Procesando")
        self.button4.Enable(False)
        r1 = "SELECT t.id,t.idtransferencia,t.idsucorigen,t.idsucdestino,t.fecha, \n"
        r2 = "       t.fecharecepcion,t.ptc,t.codsussan,t.cantidad,t.estado, \n"
        r3 = "       t.auditoria,t.orden,t.seguridad,ptc.talle,c.idcolor,c.nombre,p.descri \n"
        r4 = "FROM transferencia t, productos p, \n"
        r5 = "     producto_talle_color ptc, colores c \n"
        r6 = "WHERE "+opcion1+opcion2+" \n"
        r7 = opcion3+opcion4+" \n"+opcion5+opcion6+" \n"+opcion7+" \n"
        r8 = "AND t.ptc=ptc.id AND t.codsussan=p.codsussan AND ptc.color=c.idcolor \n"
        r9 = " ORDER BY t.fecha,t.idtransferencia,t.auditoria,t.ptc "
        if self.checkBox4.GetValue():
            r9 = " ORDER BY t.fecha,t.ptc,t.idtransferencia,t.auditoria "
        if self.checkBox5.GetValue():
            r9 = " ORDER BY t.fecha,t.codsussan,t.ptc,t.idtransferencia,t.auditoria "
        sql = r1+r2+r3+r4+r5+r6+r7+r8+r9
        datos = consultasBD.ordenCrudaDict(sql)
        self.limpiarGrilla()
        if datos != ():
            self.llenarGrilla(datos)
        self.button1.SetLabel("Buscar")

    def limpiarGrilla(self):
        self.grid1.ClearGrid()
        for fil in xrange(self.grid1.GetNumberRows()):
            self.grid1.DeleteRows()
        self.grid1.AppendRows(1)
        self.grid1.Refresh()

    def OnBotonLimpiar(self, event):
        self.limpiarGrilla()
        self.comboBox1.SetSelection(-1)
        self.comboBox2.SetSelection(-1)
        self.textCtrl1.SetLabel("")
        self.textCtrl2.SetLabel("")
        self.textCtrl3.SetLabel("")
        self.datePickerCtrl1.Show(True)
        self.datePickerCtrl1.Enable(True)
        self.checkBox1.SetValue(False)
        self.checkBox2.SetValue(True)
        self.checkBox3.SetValue(True)
        self.checkBox4.SetValue(False)
        self.checkBox4.SetValue(False)
        self.button4.Enable(False)
        self.datePickerCtrl1.SetFocus()

    def OnOrdenarPTC(self, event):
        if self.checkBox4.GetValue() and self.checkBox5.GetValue():
            self.checkBox5.SetValue(False)

    def OnOrdenarCodSussan(self, event):
        if self.checkBox4.GetValue() and self.checkBox5.GetValue():
            self.checkBox4.SetValue(False)

    def OnImprimir(self, event):
        print "Imprimir"
        f=open("c:\\matrisamor.doc\\reporte-transferencias.html","w")

        numeroPagina = 1
        nrosuc,nombresuc = utiles.datosSucursal()
        totalItemPorPagina = 66-6 #resto 6 estimando renglones de encabezado
        totalPaginas = self.grid1.GetNumberRows() / totalItemPorPagina 
        totalPaginas+= 1

        def encabezadoPagina(texto):
            fecha = utiles.obtenerFecha("d-m-Y")
            sucursal = utiles.datosSucursal2()
            numero = str(sucursal[0])
            nombre = str(sucursal[1])
            telefono = str(sucursal[2])
            codigo = ""
            if self.seguridad[0]: #debo imprimir codigo seguridad si coincide sucursal origen
                idtransferencia = self.grid1.GetCellValue(0,0)
                nrosucursal = (idtransferencia.split("-"))[0]
                codigo = ""
                if numero==nrosucursal:
                    codigo = "C&oacute;digo: "+self.seguridad[1]+" "
            
            a = '<table width="100%" cellspacing="0" border="1"> \n'
            a+= '<tr><td> \n'
            a+= '<table width="100%" cellspacing="0" border="0"> \n'
            a+= '<tr> \n'
            a+= '<td valign="top" align="left" width="50%"> \n'
            a+= '<strong>SUSSAN S.R.L. - Listado de Transferencias<br>'+codigo+'\n'
            a+= '<font size="1">'+numero+' '+nombre+' '+telefono+'</font></strong>\n'
            a+= '</td> \n'
            a+= '<td valign="top" align="right" width="50%">'+fecha+' \n'
            a+= '<br>P&aacute;gina '+str(numeroPagina)+'/'+str(totalPaginas)+'</td> \n'
            a+= '</tr> \n'
            a+= '</table> \n'
            a+= '</td></tr> \n'
            a+= '</table><br>\n'
            texto+= a
            return texto

        def encabezadoTabla(texto):
            #ID,Orden,Origen,Destino,Fecha,PTC,CodSussan,Descripcion,Talle,Color,Estado,EnviadoPor
            #0  1     2      3       4     5   6         7           8     9     10     11
            taman = "2.0"
            a = '<font size="'+taman+'">'
            a+= '<table width="100%" cellspacing="0" border="1"> \n'
            a+= '<tr> \n'
            a+= '<td valign="top" align="right">Orden</td> \n'
            a+= '<td valign="top" align="left">ID</td> \n'
            a+= '<td valign="top" align="right"> </td> \n'
            a+= '<td valign="top" align="left">Origen</td> \n'
            a+= '<td valign="top" align="left">Destino</td> \n'
            a+= '<td valign="top" align="center">Fecha</td> \n'
            a+= '<td valign="top" align="left">PTC</td> \n'
            a+= '<td valign="top" align="left">CodSussan</td> \n'
            a+= '<td valign="top" align="left">Descripci&oacute;n</td> \n'
            a+= '<td valign="top" align="left">Talle</td> \n'
            a+= '<td valign="top" align="left">Color</td> \n'
            a+= '<td valign="top" align="center">Estado</td> \n'
            a+= '<td valign="top" align="left">Enviado por</td> \n'
            a+= '</tr> \n'
            a+= '<tr> \n'
            a+= '<td colspan="13"></td> \n'
            a+= '</tr> \n'
            texto+= a
            return texto

        cadena = '<?xml version="1.0" encoding="utf-8" ?> \n'
        cadena+= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> \n'
        cadena+= '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> \n'
        cadena+= '<head> \n'
        cadena+= '<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> \n'
        cadena+= '<meta name="generator" content="Docutils 0.4.1: http://docutils.sourceforge.net/" /> \n'
        cadena+= '<title>Sussan Boutique</title> \n'
        cadena+= '</head> \n'
        cadena+= '<body> \n'
        cadena2 = cadena

        cadena = encabezadoPagina(cadena)
        cadena = encabezadoTabla(cadena)
        f.write(cadena)

        renglon = 1
        orden = 0
        
        for fil in xrange(self.grid1.GetNumberRows()):
            if self.grid1.GetCellValue(fil,0)=="":
                continue
            #ID,Orden,Origen,Destino,Fecha,PTC,CodSussan,Descripcion,Talle,Color,Estado,EnviadoPor
            #0  1     2      3       4     5   6         7           8     9     10     11
            orden+= 1
            idtransferencia = self.grid1.GetCellValue(fil,0)
            miorden = self.grid1.GetCellValue(fil,1)
            sucorigen = self.grid1.GetCellValue(fil,2)
            sucdestino = self.grid1.GetCellValue(fil,3)
            fecha = self.grid1.GetCellValue(fil,4)
            ptc = self.grid1.GetCellValue(fil,5)
            codsussan = self.grid1.GetCellValue(fil,6)
            descripcion = self.grid1.GetCellValue(fil,7)
            talle = self.grid1.GetCellValue(fil,8)
            color = self.grid1.GetCellValue(fil,9)
            estado = self.grid1.GetCellValue(fil,10)
            enviadopor = self.grid1.GetCellValue(fil,11)
            
            #ID,Orden,Origen,Destino,Fecha,PTC,CodSussan,Descripcion,Talle,Color,Estado,EnviadoPor
            #0  1     2      3       4     5   6         7           8     9     10     11
            taman = "0.5"
            cadena = '<tr> \n'
            cadena+= '<td valign="top" align="right"><font size="'+taman+'">'+str(orden)+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+idtransferencia+'</font></td> \n'
            cadena+= '<td valign="top" align="right"><font size="'+taman+'">'+miorden+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+sucorigen+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+sucdestino+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size="'+taman+'">'+fecha+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+ptc+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+codsussan+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+descripcion+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+talle+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+color+'</font></td> \n'
            cadena+= '<td valign="top" align="center"><font size="'+taman+'">'+estado+'</font></td> \n'
            cadena+= '<td valign="top" align="left"><font size="'+taman+'">'+enviadopor+'</font></td> \n'
            cadena+= '</tr>\n'
            f.write(cadena)
            
            renglon+= 1

            if renglon == totalItemPorPagina :
                cadena = '</table> \n'
                f.write(cadena)
                f.write("</table><!-- salto de pagina -->\n")
                f.write("<p STYLE='page-break-after: always;'></p>\n")
                renglon = 0
                numeroPagina+= 1
                
                cadena = encabezadoPagina("")
                cadena = encabezadoTabla(cadena)
                f.write(cadena)

        cadena = '</table> \n'

        f.write(cadena)
        f.close()
        
        import os
        os.system("taskkill /IM firefox.exe /F")
        os.system("c:\\explorer.lnk c:\\matrisamor.doc\\reporte-transferencias.html")
